#include <iostream>
using namespace std;

class Parent
{
public:
	Parent(int a=0)
	{
		this->a=a;
		printf();//构造函数中调用虚函数
	}
	
	virtual void printf()
	{
		cout<<"Parent\n"<<endl;
	}
private:
    int a;
	
};


class Child : public Parent
{
public:
	Child(int a=0,int b=0)
	{
		this->a=a;
		this->b=b;
		printf();
	}
	
	void printf()
	{
		cout<<"Child\n"<<endl;
	}
private:
    int a;
    int b;
};

void run(Parent* p)
{
	p->printf();
}

int main()
{
	Parent p;
	Child c;//初始化子类的时候，初始化c的vptr指针，当执行父类构造函数时，vptr指向父类的虚函数表，所以会执行父类的printf函数，当父类的构造函数执行完毕，会把c的vptr指针指向子类的虚函数表。所以期间不会发生多态。
	return 0;
} 